/**
   Copyright 2012 Shakil Siraj (shakil.siraj@gmail.com)

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 */
package com.googlecode.objectify.test.dataloader.example.bookstore;

import java.util.Date;
import java.util.List;

import javax.persistence.Embedded;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Cache;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Index;
import com.googlecode.objectify.test.dataloader.example.BaseDatastoreEntity;

/**
 * @author Shakil Siraj (shakil.siraj@gmail.com)
 *
 */
@Entity
@Cache
public class SaleRecord extends BaseDatastoreEntity {
    
    private String customerFirstName;
    
    private String customerLastName;
    
    @Embedded
    private Address customerAddress;
    
    @Index
    private PaymentType paymentType;
    
    @Index
    private Date saleDate;
    
    private Float discount;
    
    private Float totalAmount;
    
    private String cardNumber;
    
    private List<Key<Stock>> stockList;

    /**
     * Getter method for customerFirstName
     * @return the customerFirstName
     */
    public String getCustomerFirstName() {
        return customerFirstName;
    }

    /**
     * Setter method for customerFirstName
     * @param customerFirstName the customerFirstName to set
     */
    public void setCustomerFirstName(String customerFirstName) {
        this.customerFirstName = customerFirstName;
    }

    /**
     * Getter method for customerLastName
     * @return the customerLastName
     */
    public String getCustomerLastName() {
        return customerLastName;
    }

    /**
     * Setter method for customerLastName
     * @param customerLastName the customerLastName to set
     */
    public void setCustomerLastName(String customerLastName) {
        this.customerLastName = customerLastName;
    }

    /**
     * Getter method for customerAddress
     * @return the customerAddress
     */
    public Address getCustomerAddress() {
        return customerAddress;
    }

    /**
     * Setter method for customerAddress
     * @param customerAddress the customerAddress to set
     */
    public void setCustomerAddress(Address customerAddress) {
        this.customerAddress = customerAddress;
    }

    /**
     * Getter method for paymentType
     * @return the paymentType
     */
    public PaymentType getPaymentType() {
        return paymentType;
    }

    /**
     * Setter method for paymentType
     * @param paymentType the paymentType to set
     */
    public void setPaymentType(PaymentType paymentType) {
        this.paymentType = paymentType;
    }

    /**
     * Getter method for saleDate
     * @return the saleDate
     */
    public Date getSaleDate() {
        return saleDate;
    }

    /**
     * Setter method for saleDate
     * @param saleDate the saleDate to set
     */
    public void setSaleDate(Date saleDate) {
        this.saleDate = saleDate;
    }

    /**
     * Getter method for discount
     * @return the discount
     */
    public Float getDiscount() {
        return discount;
    }

    /**
     * Setter method for discount
     * @param discount the discount to set
     */
    public void setDiscount(Float discount) {
        this.discount = discount;
    }

    /**
     * Getter method for totalAmount
     * @return the totalAmount
     */
    public Float getTotalAmount() {
        return totalAmount;
    }

    /**
     * Setter method for totalAmount
     * @param totalAmount the totalAmount to set
     */
    public void setTotalAmount(Float totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * Getter method for cardNumber
     * @return the cardNumber
     */
    public String getCardNumber() {
	return cardNumber;
    }

    /**
     * Setter method for cardNumber
     * @param cardNumber the cardNumber to set
     */
    public void setCardNumber(String cardNumber) {
	this.cardNumber = cardNumber;
    }

    /**
     * Getter method for stockList
     * @return the stockList
     */
    public List<Key<Stock>> getStockList() {
	return stockList;
    }

    /**
     * Setter method for stockList
     * @param stockList the stockList to set
     */
    public void setStockList(List<Key<Stock>> stockList) {
	this.stockList = stockList;
    }
    
    

}
